package com.joyxy.spider.mapscript.operation;

/**
 * 攻击操作
 * 操作数: 6
 * 参数: Time（攻击时间）
 */
public class AttackOperation extends BaseOperation {
    /** 攻击时间（秒） */
    private int attackTime;
    
    public AttackOperation(int attackTime) {
        super(6, "攻击");
        this.attackTime = attackTime;
    }
    
    /**
     * 从参数数组创建攻击操作
     */
    public static AttackOperation fromParameters(int[] parameters) {
        if (parameters == null || parameters.length < 1) {
            throw new IllegalArgumentException("攻击操作需要1个参数: Time");
        }
        return new AttackOperation(parameters[0]);
    }
    
    @Override
    public void execute() {
        System.out.println("执行攻击: 攻击" + attackTime + "秒");
        // 这里应该调用实际的攻击逻辑
    }
    
    @Override
    public boolean isValid() {
        return attackTime > 0;
    }
    
    @Override
    public String getDetailInfo() {
        return String.format("攻击: 持续时间=%d秒", attackTime);
    }
    
    /**
     * 检查是否为长时间攻击
     */
    public boolean isLongAttack() {
        return attackTime >= 60; // 超过1分钟认为是长时间攻击
    }
    
    /**
     * 检查是否为短时间攻击
     */
    public boolean isShortAttack() {
        return attackTime <= 10; // 10秒以内认为是短时间攻击
    }
    
    // Getter method
    public int getAttackTime() { 
        return attackTime; 
    }
    
    @Override
    public String toString() {
        return String.format("Attack{time=%ds}", attackTime);
    }
} 